package com.xs.aifitnessagent.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.xs.aifitnessagent.entities.User;
import com.xs.aifitnessagent.entities.req.UserLoginReq;
import com.xs.aifitnessagent.entities.req.UserRegisterReq;
import com.xs.aifitnessagent.entities.vo.UserVO;
import com.xs.aifitnessagent.resp.ResultData;
import jakarta.validation.Valid;

import java.util.List;

/**
 * @author lambor
 *
 */
public interface UserService extends IService<User> {

    /**
     * 用户注册
     *
     * @param userRegisterReq 用户注册请求体
     * @return ResultData
     */
    ResultData register(@Valid UserRegisterReq userRegisterReq);

    /**
     * 获取用户列表
     *
     * @return List<UserVO>
     */
    List<UserVO> getUserList();

    /**
     * 用户登录
     *
     * @param userLoginReq 用户登录请求体
     * @return ResultData
     */
    ResultData<String>  login(UserLoginReq userLoginReq);

    /**
     * 用户登出
     *
     * @return ResultData
     */
    ResultData<String> logout();

    /**
     * 获取登录用户信息
     *
     * @return ResultData
     */
    ResultData<UserVO> getLoginUserInfo();

    /**
     * 根据用户id获取用户信息
     *
     * @param id 用户id
     * @return ResultData
     */
    ResultData<UserVO> getUserById(Long id);


    /**
     * 根据用户名获取用户信息
     *
     * @param username 用户名
     * @return ResultData
     */
    UserVO getUserName(String username);
}
